﻿using System;
using System.Collections.Generic;
using System.Text;
using SH;
namespace MTS
{
	public interface ImtSCSCallback
    : ImtCallback
{
		const int _classID = 3692;

		const int SCSSceneRequest = 10;
		const int SCSCalibRequest = 11;
		const int SCSAutoDiagRequest = 12;
		const int SCSDiagVehicleRequest = 13;
		const int SCSDiagDetectorRequest = 14;
		const int SCSDiagSourceRequest = 15;
		const int SCSDiagProtectiveDoorRequest = 16;
		const int SCSDiagTransferTransportPlatformRequest = 17;
		const int SCSSaveRawOriData = 18;
		const int SCSDeviceOpInfo = 19;
		const int SCSResetCmd = 20;
		const int SCSCargoCount = 21;
		const int SCSMaintainRequest = 22;
		const int SCSAimingRequest = 23;

		[mtFuncID("SCSSceneRequest", SCSSceneRequest)]

		public shErrorCode OnSceneRequest( mtSceneRequest req, out mtSceneResponse rsp);

		[mtFuncID("SCSCalibRequest", SCSCalibRequest)]
		public shErrorCode OnCalibRequest( mtCalibRequest req, out mtCalibRespone rsp);

		[mtFuncID("SCSAimingRequest", SCSAimingRequest)]
		public shErrorCode OnAimingRequest( mtAimingRequest req);

		[mtFuncID("SCSAutoDiagRequest", SCSAutoDiagRequest)]
		public shErrorCode OnAutoDiagRequest( mtAutoDiagRequest req, out mtAutoDiagResponse rsp);

		[mtFuncID("SCSDiagVehicleRequest", SCSDiagVehicleRequest)]
		public shErrorCode OnDiagVehicleRequest( mtDiagVehicleRequest req, out mtDiagVehicleResponse rsp);

		[mtFuncID("SCSDiagDetectorRequest", SCSDiagDetectorRequest)]
		public shErrorCode OnDiagDetectorRequest( mtDiagDetectorRequest req, out mtDiagDetectorResponse rsp);

		[mtFuncID("SCSDiagSourceRequest", SCSDiagSourceRequest)]
		public shErrorCode OnDiagSourceRequest( mtDiagSourceRequest req, out mtDiagSourceResponse rsp);

		[mtFuncID("SCSDiagProtectiveDoorRequest", SCSDiagProtectiveDoorRequest)]
		public shErrorCode OnDiagProtectiveDoorRequest(  mtDiagProtectiveDoorRequest req, out mtDiagProtectiveDoorResponse rsp );

		[mtFuncID("SCSDiagTransferTransportPlatformRequest", SCSDiagTransferTransportPlatformRequest)]
		public shErrorCode OnDiagTransferTransportPlatformRequest(  DiagTransferTransportRequest req, out DiagTransferTransportResponse rsp);

		[mtFuncID("SCSSaveRawOriData", SCSSaveRawOriData)]
		public shErrorCode OnSaveRawOriData( mtSaveRawOriData  info);

		[mtFuncID("SCSDeviceOpInfo", SCSDeviceOpInfo)]
		public shErrorCode OnGetDeviceOpInfo(mtDeviceOpInfo info);

		[mtFuncID("SCSResetCmd", SCSResetCmd)]
		public shErrorCode OnResetCmd( mtResetCmdInfo info);

		[mtFuncID("SCSCargoCount", SCSCargoCount)]
		public shErrorCode OnCargoCount( mtCargoCountInfo info);

		[mtFuncID("SCSMaintainRequest", SCSMaintainRequest)]
		public shErrorCode OnMaintainRequest( mtMaintainRequest info, out List<mtMaintainResponse> rsp);	//管理服务获取维护保养计数类硬件信息（如总的运行时长）

        }

	public interface ImtSCS  // Invoke Client => Server
	: Imt
{

	//To DMS
	//计划废弃
	public shErrorCode ScanRequest( mtScanRequest  request,out mtScanResponse  response);

	public shErrorCode SceneStepInfo( mtSceneStepInfo info);

	public shErrorCode ScanStepInfo( mtScanStepInfo info);

	public shErrorCode CalibStepInfo( mtCalibStepInfo info);

	public shErrorCode AutoDiagStepInfo( mtAutoDiagStepInfo info);

	public shErrorCode AutoDiagReport( mtAutoDiagReport info);

	public shErrorCode StationRunStatus( mtGStationRunStatusInfo info);
	
};

}
